#include "shm.hpp"
#include "fifo.hpp"
#include <cstdio>
#include <string>
#include <unistd.h>

int main() {
    FileOper writefile(PATH, FILENAME);
    writefile.OpenForWrite();
    Shm shm(path, proid, USER);
    char* mem = (char*)shm.VirtualAddr();
    // int k = 0;
    // for(char c = 'a'; c <= 'z'; c++, k+=2) {
    //     sleep(1);
    //     mem[k] = c;
    //     mem[k + 1] = c;
    //     sleep(1);
    //     mem[k + 2] = 0;
    //     writefile.Wakeup();
    // }
    std::string input;
    while (true) {
        printf("请输入消息(q退出): ");
        fflush(stdout);

        if (!std::getline(std::cin, input)) break;
        if (input == "q") break;

        // 写入共享内存
        snprintf(mem, shm.Size(), "%s", input.c_str());
        // 通知服务端
        writefile.Wakeup();
    }
    writefile.Close();
    return 0;
}